# -*- coding: utf-8 -*-
# @File  : main.py
# @Author:  liubinyu
# @Time: 2024/5/19 11:14

from fastapi import FastAPI
from tortoise.contrib.fastapi import register_tortoise
import uvicorn
from settings import TORTOISE_ORM
from api.student import api_student

app = FastAPI()

app.include_router(api_student, prefix="/student", tags=["选课系统的学生接口"])

# 该方法会在fastapi启动时触发，内部通过传递进去的app对象，监听服务启动和终止事件
# 当检测到启动事件时，会初始化Tortoise对象，如果generate_schemas为True则还会进行数据库迁移
# 当检测到终止事件时，会关闭连接
register_tortoise(
    app=app,
    config=TORTOISE_ORM
    # generate_schemas=True,  # 如果数据库为空，则自动生成对应表单，生产环境不要开
    # add_exception_handlers=True,  # 生产环境不要开，会泄露调试信息
)

if __name__ == '__main__':
    uvicorn.run("main:app", host="127.0.0.1", port=8080, reload=True)